#!/bin/bash
set -e  # 严格错误模式

# 配置颜色
DARK_BLUE='\033[38;5;39m'   # 亮蓝色
LIME='\033[38;5;118m'       # 荧光绿
RED='\033[38;5;196m'        # 鲜艳红色
YELLOW='\033[33m'           # 黄色
ORANGE='\033[38;5;208m'     # 橙色
PINK='\033[38;5;200m'       # 品红
CYAN='\033[38;5;51m'        # 亮青色
RESET='\033[0m'

# 显示菜单让用户选择版本
echo -e "${DARK_BLUE}请选择要安装的版本：${RESET}"
echo -e "1) 开源版 (MrDoc)"
echo -e "2) 专业版 (MrDocPro)"
read -p "请输入数字选择 (1/2): " choice

# 处理用户选择
case $choice in
    1)
        REPO_URL="https://gitee.com/zmister/MrDoc.git"
        CLONE_DIR="MrDoc"
        ;;
    2)
        # 专业版需要认证信息
        read -p "请输入专业版用户名: " username
        read -s -p "请输入专业版用户密码: " password
        echo  # 换行处理密码输入后的光标位置
        REPO_URL="https://${username}:${password}@git.mrdoc.pro/MrDoc/MrDocPro.git"
        CLONE_DIR="MrDocPro"
        ;;
    *)
        echo -e "${RED}无效选择，安装中止${RESET}"
        exit 1
        ;;
esac

# 检查目标目录是否存在
if [ -d "$CLONE_DIR" ]; then
    echo -e "${YELLOW}检测到 MrDoc 项目目录 ${CLONE_DIR} 已存在${RESET}"
    read -p "是否要删除现有目录并重新拉取？(y/N) " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        echo -e "${YELLOW}正在删除旧目录...${RESET}"
        rm -rf "$CLONE_DIR"
    else
        echo -e "${RED}安装中止${RESET}"
        exit 1
    fi
fi

# 克隆仓库
echo -e "${DARK_BLUE}▶ 正在克隆仓库 (${CLONE_DIR})...${RESET}"
git clone "$REPO_URL" "$CLONE_DIR"

# 进入项目目录
cd "$CLONE_DIR"

# 启动 Docker 容器
echo -e "${DARK_BLUE}▶ 正在启动 Docker 容器...${RESET}"
docker-compose up -d

echo -e "${GREEN}✔ Docker 创建运行容器完成！${RESET}"
echo -e "现在可以通过 http://IP:10086 访问你的 MrDoc 实例，接下来可使用 Nginx 配置反向代理、SSL等操作"